www.gusucode.com > matlab从零到进阶程序与数据 > matlab从零到进阶程序与数据/第4章 MATLAB程序设计/cat_in_holl.m

    function T = cat_in_holl(varargin)
%varargin,使函数可以接受参数个数不定的输入
if ~isempty(varargin) %输入参数非空
n = varargin{1};%varargin为cell型数组,取其第一个元素赋给n
end
%try -catch结构用法示例
try  
    %如果n是正整数下面语句不会发生错误,进而执行try -catch结构之后的语句
    %否则会发生错误,执行由catch引导的语句。
   if n>0&&mod(n,1)==0; %n为正整数的判断条件
      %空语句,不会报错
   else %n不是正整数,报错
       error;
   end
catch ME   %ME,用来记录发生错误的一些信息
    disp('函数没有输入参数或者输入参数不是正整数标量');
    T = [];%给T赋空值
    return;%函数返回,后面语句不再执行,没有return会接着执行后面的语句
end
%switch-case-end结构用法示例
switch nargin %nargin,函数输入参数的个数
    case 1
        %case 1 的情况是我们程序的核心部分,即整个模拟出洞的过程
        T = zeros(1,n);
        for k = 1:n %for循环用法示例
            c = unidrnd(3,1);%等概率随机生成{1,2,3}中某个数字
            while c ~= 1 %while循环用法示例
                if c == 2 
                    T(k) = T(k)+4;
                else
                    T(k) = T(k)+6;
                end
                c = unidrnd(3,1);
            end
            T(k) = T(k)+2;
        end
    case 2
        T = [];
        disp('函数只能有一个输入参数,且为正整数');
    otherwise
        T = [];
        disp('函数输入参数个数不能大于1,参数需为正整数');
end